package com.ryder.petmatediarybackend.module.pet.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.time.LocalDate;
import java.util.Date;
import java.util.List;

/**
 * 创建宠物档案DTO
 *
 * @author Ryder
 * @version 1.0
 * @since 1.0
 * 更新日期: 2025-10-30 10:13:16
 */
@Data
@Schema(description = "创建宠物档案请求DTO")
public class CreatePetDTO {

    @NotBlank(message = "宠物昵称不能为空")
    @Schema(description = "宠物昵称", example = "小橘", required = true)
    private String petName;

    @NotNull(message = "宠物类型不能为空")
    @Schema(description = "宠物类型：1=猫咪 2=狗狗 3=其他", example = "1", required = true)
    private Integer petType;

    @NotNull(message = "性别不能为空")
    @Schema(description = "性别：1=男孩 2=女孩", example = "1", required = true)
    private Integer gender;

    @Schema(description = "品种", example = "英短")
    private String breed;

    @Schema(description = "出生日期", example = "2023-01-15")
    private LocalDate birthDate;

    @Schema(description = "体重（kg）", example = "5.5")
    private Double weight;

    @Schema(description = "毛色", example = "橘色")
    private String color;

    @Schema(description = "芯片号", example = "123456789")
    private String chipNumber;

    @Schema(description = "是否绝育：0=否 1=是", example = "1")
    private Integer isNeutered;

    @Schema(description = "疫苗状态：0=未接种 1=一针 2=两针 3=三针 4=已完成", example = "4")
    private Integer vaccineStatus;

    @Schema(description = "过敏史", example = "对海鲜过敏")
    private String allergies;

    @Schema(description = "病史", example = "无重大疾病史")
    private String medicalHistory;

    @Schema(description = "宠物头像URL（通过文件上传接口获得）", example = "https://minio.xxx.com/petmate/avatar/pet/123/xxx.jpg")
    private String avatar;

    @Schema(description = "个性标签列表", example = "[\"活泼好动\", \"温顺粘人\", \"贪吃鬼\"]")
    private List<String> tags;
}
